var mongogdb = require('./db');
var mongoose = require('mongoose');


var getTime = require('./date');
function Ip(ipConfig){
  this.ip = ipConfig.ip;
  this.count = ipConfig.count;
}
Ip.prototype.save = function(callback){
  this.time = getTime();
  var data = {ip:this.ip,count:this.count,lastTime:this.time.second};
  mongogdb.open(function (err, db) {
    if (err) {
      return callback(err);
    }
    db.collection("ip", function (err, collection) {
      if (err) {
        mongogdb.close();
        return callback(err);
      }
      collection.insert(data, {safe: true}, function (err) {
        //mongogdb.close();
        if (err) {
          return callback(err);
        }
        callback(null);

      })
    })
  })
};

Ip.update = function(ip,ipConfigToUpdate,callback){
  mongogdb.open(function (err, db) {
    if(err){
      return callback(err);
    }
    db.collection('ip',function(err,collection){
      if(err){
        return callback(err);
      }
      collection.update({ip:ip},{$set:ipConfigToUpdate},function(err){
        //mongogdb.close();
        console.log('in-update');
        if(err){
          return callback(err);
        }
        callback(null,'success');
      })
    })
  })
};
Ip.getOne = function(ip,callback){
  mongogdb.open(function (err, db) {
    if(err){
      return callback(err);
    }
    db.collection('ip',function(err,collection){
      if(err){
        return callback(err);
      }
      collection.findOne({ip:ip},function(err,ipresult){
        //mongogdb.close();
        if(err){
          return callback(err);
        }
        callback(null,ipresult);
      })
    })
  })
};

module.exports = Ip;